Como usar o pacote sidraR

O pacote sidraR permite acessar os dados do Sidra - Sistema IBGE de Recuperação Automática diretamente pelo R. No exemplo de hoje, vamos fazer um levantamento para tentar responder a seguinte pergunta: Quais foram os municípios brasileiros responsáveis pela maior parte do valor de soja produzido nas regiões Norte e Centro-Oeste em 2020?

Como o pacote está no CRAN, a instalação será pelo comando:

install.packages('sidrar')

A função abaixo permite que eu busque por determinadas palavras-chave nos títulos das tabelas do SIDRA. Importante: não é permitido usar acentos nessa função.

x <- search_sidra('lavouras temporarias quantidade produzida')
x
##  [1] "Tabela 495 - Quantidade produzida por produtos das lavouras temporárias e condição do produtor em relação às terras"                                                                                                                                                                                                                         
##  [2] "Tabela 496 - Quantidade produzida por produtos das lavouras temporárias e grupo de atividade econômica"                                                                                                                                                                                                                                      
##  [3] "Tabela 497 - Quantidade produzida por produtos das lavouras temporárias e grupos de área total"                                                                                                                                                                                                                                              
##  [4] "Tabela 1272 - Produtos da lavoura temporária nos estabelecimentos agropecuários, segundo indicadores da agricultura familiar e não familiar - FAO"                                                                                                                                                                                           
##  [5] "Tabela 1612 - Área plantada, área colhida, quantidade produzida, rendimento médio e valor da produção das lavouras temporárias"                                                                                                                                                                                                              
##  [6] "Tabela 1731 - Quantidade produzida por produtos das lavouras temporárias - série histórica (1940/2006)"                                                                                                                                                                                                                                      
##  [7] "Tabela 5457 - Área plantada ou destinada à colheita, área colhida, quantidade produzida, rendimento médio e valor da produção das lavouras temporárias e permanentes"                                                                                                                                                                        
##  [8] "Tabela 6957 - Produção, Valor da produção, Venda, Valor da venda e Área colhida da lavoura temporária nos estabelecimentos agropecuários, por tipologia, produtos da lavoura temporária, condição do produtor em relação às terras e grupos de atividade econômica"                                                                          
##  [9] "Tabela 6958 - Produção, Valor da produção, Venda, Valor da venda e Área colhida da lavoura temporária nos estabelecimentos agropecuários, por tipologia, produtos da lavoura temporária, tipo de semente e grupos de área colhida"                                                                                                           
## [10] "Tabela 6959 - Produção, Valor da produção, Venda, Valor da venda e Área colhida da lavoura temporária nos estabelecimentos agropecuários, por tipologia, produtos da lavoura temporária e grupos de área total"                                                                                                                              
## [11] "Tabela 6965 - Número de estabelecimentos agropecuários com lavoura temporária, Área total dos estabelecimentos agropecuários com lavoura temporária, Quantidade produzida nas lavouras temporárias e Área colhida nas lavouras temporárias, por produtos da lavoura temporária, origem da orientação técnica recebida e grupos de área total"

Após uma breve leitura dos nomes das tabelas, percebemos que a informação que precisamos está na Tabela 1612: Área plantada, área colhida, quantidade produzida, rendimento médio e valor da produção das lavouras temporárias.

É por meio da função get_sidra() que conseguimos baixar os dados do IBGE para o R. Por meio dos atributos da função eu consigo determinar o nível de detalhe do dado baixado (microrregião, município, estado etc), filtrar apenas as informações de uma região, e até mesmo selecionar uma variável específica.

Como o objetivo aqui é baixar os dados com o valor da produção, eu seleciono a variável número 215 (valor da produção) por meio do atributo variable. O problema é que ao usar a função get_sidra para baixar os dados da tabela, somos surpreendidos com a mensagem: “Quantidade de valores solicitados X linhas excedeu o limite: 50000”. Ou seja, existe uma limitação de que os dados baixados sejam de apenas 50.000 por requisição. Para contornar essa limitação, a solução foi fazer uma requisição para cada região e ir armazenando os resultados em uma tabela que criativamente foi chamada de “tabela”.

regiao <- c(1,5)
tabela <- data.frame()

for(i in regiao){
  x <- get_sidra(x = 1612, # código da tabela no Sidra
                 geo = 'City', # nível de detalhe espacial da informação
                 geo.filter = list("Region" = i), #região
                 variable = 215, # variável de interesse
                 period = as.character(2020)
                 )
tabela <- rbind(tabela,x)
}

Podemos ver as primeiras linhas da nova tabela abaixo.

head(tabela)
##   Nível Territorial (Código) Nível Territorial Unidade de Medida (Código)
## 2                          6         Município                         40
## 3                          6         Município                         40
## 4                          6         Município                         40
## 5                          6         Município                         40
## 6                          6         Município                         40
## 7                          6         Município                         40
##   Unidade de Medida Valor Município (Código)                  Município
## 2         Mil Reais 40723            1100015 Alta Floresta D'Oeste - RO
## 3         Mil Reais   417            1100015 Alta Floresta D'Oeste - RO
## 4         Mil Reais    NA            1100015 Alta Floresta D'Oeste - RO
## 5         Mil Reais    NA            1100015 Alta Floresta D'Oeste - RO
## 6         Mil Reais    NA            1100015 Alta Floresta D'Oeste - RO
## 7         Mil Reais    20            1100015 Alta Floresta D'Oeste - RO
##   Ano (Código)  Ano Variável (Código)          Variável
## 2         2020 2020               215 Valor da produção
## 3         2020 2020               215 Valor da produção
## 4         2020 2020               215 Valor da produção
## 5         2020 2020               215 Valor da produção
## 6         2020 2020               215 Valor da produção
## 7         2020 2020               215 Valor da produção
##   Produto das lavouras temporárias (Código) Produto das lavouras temporárias
## 2                                         0                            Total
## 3                                      2688                         Abacaxi*
## 4                                     40471                    Alfafa fenada
## 5                                      2689     Algodão herbáceo (em caroço)
## 6                                      2690                             Alho
## 7                                      2691              Amendoim (em casca)


Agora vamos filtrar a produção de soja, selecionar apenas aquelas variáveis que serão usadas, substituir os valores faltantes por zero, remover os municípios que tem valor igual a zero e classificar os valores.

tabela_class <- tabela %>%
  janitor::clean_names() %>%
  select(5,6,7,9,13) %>%
  replace(is.na(.), 0) %>% 
  dplyr::filter(produto_das_lavouras_temporarias %in% "Soja (em grão)",
                valor > 0) %>%
  arrange(desc(valor)) 

tabela_class <- tabela_class %>% 
  mutate(class = case_when(
         valor <= summary(tabela_class$valor)[2] ~ "Baixo",
         valor <= summary(tabela_class$valor)[3] ~ "Médio Baixo",
         valor <= summary(tabela_class$valor)[5] ~ "Médio Alto",
         valor > summary(tabela_class$valor)[5] ~ "Alto"
         ),
         class = factor(class,
                        levels = c("Baixo","Médio Baixo","Médio Alto","Alto"))
         )
tabela_class$municipio_codigo <- as.double(tabela_class$municipio_codigo)
head(tabela)
##   Nível Territorial (Código) Nível Territorial Unidade de Medida (Código)
## 2                          6         Município                         40
## 3                          6         Município                         40
## 4                          6         Município                         40
## 5                          6         Município                         40
## 6                          6         Município                         40
## 7                          6         Município                         40
##   Unidade de Medida Valor Município (Código)                  Município
## 2         Mil Reais 40723            1100015 Alta Floresta D'Oeste - RO
## 3         Mil Reais   417            1100015 Alta Floresta D'Oeste - RO
## 4         Mil Reais    NA            1100015 Alta Floresta D'Oeste - RO
## 5         Mil Reais    NA            1100015 Alta Floresta D'Oeste - RO
## 6         Mil Reais    NA            1100015 Alta Floresta D'Oeste - RO
## 7         Mil Reais    20            1100015 Alta Floresta D'Oeste - RO
##   Ano (Código)  Ano Variável (Código)          Variável
## 2         2020 2020               215 Valor da produção
## 3         2020 2020               215 Valor da produção
## 4         2020 2020               215 Valor da produção
## 5         2020 2020               215 Valor da produção
## 6         2020 2020               215 Valor da produção
## 7         2020 2020               215 Valor da produção
##   Produto das lavouras temporárias (Código) Produto das lavouras temporárias
## 2                                         0                            Total
## 3                                      2688                         Abacaxi*
## 4                                     40471                    Alfafa fenada
## 5                                      2689     Algodão herbáceo (em caroço)
## 6                                      2690                             Alho
## 7                                      2691              Amendoim (em casca)


O resultado pode ser visto no mapa abaixo:

library(mapview)
library(geobr)
library(RColorBrewer)
mapa_soja <- geobr::read_municipality() %>% 
  filter(str_detect(code_state, "^1|^5")) %>% 
  left_join(tabela_class, by = c('code_muni' = 'municipio_codigo'))
## Using year 2010
## Loading data for the whole country. This might take a few minutes.
## 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |===                                                                   |   4%
  |                                                                            
  |=====                                                                 |   7%
  |                                                                            
  |========                                                              |  11%
  |                                                                            
  |==========                                                            |  15%
  |                                                                            
  |=============                                                         |  19%
  |                                                                            
  |================                                                      |  22%
  |                                                                            
  |==================                                                    |  26%
  |                                                                            
  |=====================                                                 |  30%
  |                                                                            
  |=======================                                               |  33%
  |                                                                            
  |==========================                                            |  37%
  |                                                                            
  |=============================                                         |  41%
  |                                                                            
  |===============================                                       |  44%
  |                                                                            
  |==================================                                    |  48%
  |                                                                            
  |====================================                                  |  52%
  |                                                                            
  |=======================================                               |  56%
  |                                                                            
  |=========================================                             |  59%
  |                                                                            
  |============================================                          |  63%
  |                                                                            
  |===============================================                       |  67%
  |                                                                            
  |=================================================                     |  70%
  |                                                                            
  |====================================================                  |  74%
  |                                                                            
  |======================================================                |  78%
  |                                                                            
  |=========================================================             |  81%
  |                                                                            
  |============================================================          |  85%
  |                                                                            
  |==============================================================        |  89%
  |                                                                            
  |=================================================================     |  93%
  |                                                                            
  |===================================================================   |  96%
  |                                                                            
  |======================================================================| 100%
mapview::mapview(mapa_soja, zcol = "class", label = 'name_muni', col.regions = brewer.pal(4, "YlOrRd"))
Igor Laltuf
Igor Laltuf
Economista e mestrando em Planejamento Urbano e Regional